package com.sky.module.system.permission.domain.form;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.sky.module.system.permission.domain.entity.Permission;
import lombok.Data;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @author
 * @date 2023/3/8 21:30
 **/
@Data
public class PermissionFormAdd {
    private static final long serialVersionUID = 1L;

    /**
     * 权限编号
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 权限名称
     */
    private String label;

    /**
     * 父权限ID
     */
    private Long parentId;

    /**
     * 父权限名称
     */
    private String parentName;

    /**
     * 授权标识符
     */
    private String code;

    /**
     * 路由地址
     */
    private String path;

    /**
     * 路由名称
     */
    private String name;

    /**
     * 授权路径
     */
    private String url;

    /**
     * 权限类型(0-目录 1-菜单 2-按钮)
     */
    private Integer type;

    /**
     * 图标
     */
    private String icon;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 修改时间
     */
    private Date updateTime;

    /**
     * 备注
     */
    private String remark;

    /**
     * 排序
     */
    private Integer orderNum;

    /**
     * 是否删除(0-未删除，1-已删除)
     */
    private Integer isDelete;


    /***
     * @description 子菜单列表
     * @param null
     * @return
     * @date 2023/2/20 11:40
     *
     */
//    @JsonInclude(JsonInclude.Include.NON_NULL)    // 属性值为null的时候不进行序列化
//    @TableField(exist = false)
//    private List<Permission> children = new ArrayList<>();

    @TableField(exist = false)
    private String value; // 用于在前端进行判断是目录还是菜单还是按钮

    /***
     * @description 是否展开
     * @param null
     * @return
     * @date 2023/2/20 12:04
     *
     */
    @TableField(exist = false)
    private Boolean open;
}
